#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@author Luís Shou
@date: 1/12/14
@obs: Este módulo contem a classe e métodos que
retornam os valores da base de dados sqlite3.
"""

from sqlalchemy import *

class GetData(object):
	"""
	Classe onde é processada a estatística referente ao índice 
	de preços ao consumidor ao longo dos anos
	"""
	def __init__(self):
		super(GetData, self).__init__()
		db = create_engine('sqlite:///sqlalchemy.db', echo = True)
		metadata = MetaData(db)
		global table_data
		table_data = Table("Dados", metadata, autoload = True)

		
	def get_years_col(self):
		"""
                Método que retorna os dados da coluna Ano
		"""
		return self.get_data_col(1, True)
		pass

	def get_ipc_col(self):
		"""
		Método que retorna os dados da coluna IPC_Global
		"""
		return self.get_data_col(2)
		pass

	def get_inflation_rate_col(self):
		"""
		Método que retorna os dados da coluna Variacao_Anual
		"""
		return self.get_data_col(3)
		pass

	def get_minimum_monthly_pay_col(self):
		"""
		Método que retorna os dados da coluna Remuneracao_minima_mensal
		"""
		return self.get_data_col(4)
		pass

	def get_maximum_monthly_pay_col(self):
		"""
		Método que retorna os dados da coluna Remuneracao_maxima_mensal
		"""
		return self.get_data_col(5)
		pass

	def get_pib_per_capita_col(self):
		"""
		Método que retorna os dados da coluna PIB_per_capita_anual
		"""
		return self.get_data_col(6)
		pass

	def get_rnb_per_capita_col(self):
		"""
		Método que retorna os dados da coluna Rendimento_nacional_bruto_per_capita_anual
		"""
		return self.get_data_col(7)
		pass

	def get_rdb_per_capita_col(self):
		"""
		Método que retorna os dados da coluna Rendimento_disponivel_bruto_per_capita_anual
		"""
		return self.get_data_col(8)
		pass

	def get_per_capita_annual_remuneration_col(self):
		"""
		Método que retorna os dados da coluna Remuneracoes_per_capita_anual
		"""
		return self.get_data_col(9)
		pass

	def get_data_col(self, col, isYears = None):
		self.years_query = table_data.select(table_data).execute()
		
		array = []

		for x in self.years_query:
			data = x[col]
			if data == "":
				array.append("0")
			else:
				if isYears == True:
					array.append(data.replace(".0", ""))
					pass
				else:
					array.append(data)
					pass
				pass
			pass

		return array
		pass
